@echo off
REM FlinkCEP 启动脚本
REM 用于在Windows环境下启动Flink CEP应用程序

echo ========================================
echo 启动 Flink CEP 应用程序
echo ========================================

REM 设置Java环境变量
if "%JAVA_HOME%" == "" (
    echo 错误: JAVA_HOME 环境变量未设置
    echo 请设置 JAVA_HOME 指向您的 Java 安装目录
    pause
    exit /b 1
)

REM 设置应用程序目录
set APP_HOME=%~dp0..
set JAR_FILE=%APP_HOME%\target\flink-cep-1.0.0.jar
set CONFIG_FILE=%APP_HOME%\config\application.properties

REM 检查JAR文件是否存在
if not exist "%JAR_FILE%" (
    echo 错误: JAR文件不存在: %JAR_FILE%
    echo 请先运行 'mvn clean package' 编译项目
    pause
    exit /b 1
)

REM 设置JVM参数
set JVM_OPTS=-Xmx2g -Xms1g -XX:+UseG1GC -XX:+PrintGCDetails

REM 设置日志目录
if not exist "%APP_HOME%\logs" (
    mkdir "%APP_HOME%\logs"
)

REM 检查Flink环境
if "%FLINK_HOME%" == "" (
    echo 警告: FLINK_HOME 环境变量未设置
    echo 将使用本地模式运行
    
    REM 本地模式运行
    echo 启动应用程序 (本地模式)...
    "%JAVA_HOME%\bin\java" %JVM_OPTS% -cp "%JAR_FILE%" com.electric.flinkcep.FlinkCEPApplication
) else (
    REM Flink集群模式运行
    echo 启动应用程序 (Flink集群模式)...
    "%FLINK_HOME%\bin\flink.bat" run "%JAR_FILE%"
)

if %ERRORLEVEL% neq 0 (
    echo 应用程序启动失败，错误代码: %ERRORLEVEL%
    pause
    exit /b %ERRORLEVEL%
)

echo 应用程序启动成功
pause